﻿//using System;
//using System.IO;
//using System.Text;
//using System.Collections.Generic;
//using System.Linq;
//using Microsoft.VisualStudio.TestTools.UnitTesting;
//using MVCScaffold.Extensions;
//using MVCScaffold.GeradorCodigo;
//using MVCScaffold.Suporte;
//using MVCScaffold.Tests.Suporte;

//namespace MVCScaffold.Tests
//{
//    [TestClass]
//    public class Template_Controller
//    {
//        //[ClassInitialize]
//        //public static void Preparar(TestContext testContext)
//        //{
//        //    PrepararArquivosProjeto.Preparar(testContext);
//        //    _diretorioDeploy = testContext.TestDeploymentDir;
//        //    _testContext = testContext;
//        //}

//        //readonly GerenciadorArquivoProjeto _gerenciadorProjeto = new GerenciadorArquivoProjeto("arquivo.csproj");
//        //readonly GerenciadorEDMX _gerenciadorEdmx = new GerenciadorEDMX("arquivo.edmx");
//        //static string _diretorioDeploy;
//        //static TestContext _testContext;

//        //[TestMethod]
//        //public void Quando_Arquivo_Template_Nao_For_Encontrado()
//        //{
//        //    //Arrange
//        //    var gerenciadorTemplate = new GeradorCodigoCSharp(_gerenciadorEdmx, _gerenciadorProjeto, _diretorioDeploy);
//        //    if (File.Exists(_diretorioDeploy + @"\CSharp\Controller.tt"))
//        //        File.Delete(Path.Combine(_diretorioDeploy, @"CSharp\Controller.tt"));

//        //    //Act 
//        //    gerenciadorTemplate.GerarControllers();

//        //    //Assert
//        //    Assert.AreEqual(11, gerenciadorTemplate.QuantidadeControllers);
//        //}

//        //[TestMethod]
//        //public void Quando_Codigo_Gerado_Com_Sucesso()
//        //{
//        //    //Arrange
//        //    PrepararArquivosTemplate.CriarArquivosTemplateControllerCSharp(_testContext);
//        //    var gerenciadorTemplate = new GeradorCodigoCSharp(_gerenciadorEdmx, _gerenciadorProjeto, _diretorioDeploy);

//        //    //Act 
//        //    gerenciadorTemplate.GerarControllers();

//        //    //Assert
//        //    Assert.AreEqual(11, gerenciadorTemplate.QuantidadeControllers);
//        //}

//        //[TestMethod]
//        //[ExpectedException(typeof(MvcScaffoldTextTemplateHostException))]
//        //public void Quando_Template_Conter_Erro()
//        //{
//        //    //Arrange
//        //    PrepararArquivosTemplate.CriarArquivosTemplateControllerCSharp(_testContext,"<template>");
//        //    var gerenciadorTemplate = new GeradorCodigoCSharp(_gerenciadorEdmx, _gerenciadorProjeto, _diretorioDeploy);

//        //    //Act 
//        //    gerenciadorTemplate.GerarControllers();
//        //}
//    }
//}
